package com.stylefeng.guns.modular.netcar.dao;

import com.baomidou.mybatisplus.mapper.BaseMapper;
import com.baomidou.mybatisplus.plugins.Page;
import com.stylefeng.guns.modular.netcar.model.LineTimeSlot;

import java.util.List;

/**
 * 
 * 线路发车时刻排班 Mapper 接口 
 * @author 张亚林
 * @Date 2018-10-27 09:55
 */
public interface LineTimeSlotMapper extends BaseMapper<LineTimeSlot> {
    /**
     * 删除线路发车时刻排班
     * @param  lineTimeSlot
     * @return    
     */
    int deleteLineTimeSlot(LineTimeSlot lineTimeSlot)throws Exception;
    /**
     * 批量线路发车时刻排班
     * @param ids 主键id数组
     * @return     
     */
    int deleteBatchLineTimeSlot(String[] ids)throws Exception;
    /**
     * 查询线路发车时刻排班列表
     * @param lineTimeSlot 线路发车时刻排班对象
     * @return      
     */
    List<LineTimeSlot> selectListLineTimeSlot(LineTimeSlot lineTimeSlot)throws Exception;
    /**
     * 分页查询线路发车时刻排班列表
     * @param page  分页对象
     * @param lineTimeSlot 系统操作对象
     * @return
     * @Date 2018-10-02
     */
    List<LineTimeSlot> selectListLineTimeSlot(Page page, LineTimeSlot lineTimeSlot)throws Exception;


    /**
     * 同一个事务 互斥锁查询
     * @param lineTimeSlot 系统操作对象
     * @return     
     */
    List<LineTimeSlot> selectListLineTimeSlotForUpdate(LineTimeSlot lineTimeSlot)throws Exception;
    /**
     * 通过主键ID查询线路发车时刻排班对象
     * @param id 主键id
     * @return    
     */
    LineTimeSlot findLineTimeSlotById(String id)throws Exception;

    /**
     * 插入线路发车时刻排班
     * @param lineTimeSlot
     * @return   
     */
    int insertLineTimeSlot(LineTimeSlot lineTimeSlot) throws Exception ;

    /**
     * 根据模板批量插入线路发车时刻排班
     * @param lineTimeSlot
     * @return
     */
    int insertBacthLineTimeSlot(LineTimeSlot lineTimeSlot) throws Exception ;
    /**
     * 更新线路发车时刻排班
     * @param lineTimeSlot
     * @return     
     */
    int updateLineTimeSlot(LineTimeSlot lineTimeSlot) throws Exception ;

    /**
     * 更新线路当前时间销售票数
     * @param lineTimeSlot
     * @return
     */
    int updateLineTimeSlotSaleNum(LineTimeSlot lineTimeSlot) throws Exception ;
}
